home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / tools / falc_uti / tassf16d / turboass.txt < prev   
Text File  |  1995-11-25  |  27KB  |  962 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                             TurboAss
  9.                           ©1989 Σ-soft
  10.                 von Markus Fritze & Sören Hellwig
  11.  
  12.                           Version 1.62
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.                   Markus Fritze, Sören Hellwig
  55.                             März 1990
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. 1.1                  TurboAss Kurzanleitung                     1
  64.  
  65.  
  66. 1 Allgemeines     
  67.  
  68. 1.1 Einleitung     
  69.  
  70. Nach  langem  hin  und  her  haben  wir  uns  entschlossen  unser
  71. Assembler-Paket  als  Shareware  auf  den  Markt  zu  werfen. Der
  72. Assembler  wurde  vormals  durch OMIKRON.Software unter dem Namen
  73. OMIKRON.Assembler  verkauft.  Die  Shareware-Version  ist  jedoch
  74. eine  erweiterte  Version  des  OMIKRON.Assemblers.  Sie  enthält
  75. weniger   Fehler,   weitere  Features  und  ist  noch  ein  wenig
  76. schneller.  Zum  Paket  gehört (natürlich) auch ein Debugger, der
  77. Bugaboo  (vormals OMIKRON.Debugger). Somit kann nun jeder User in
  78. den  Genuß  eines  schnellen  und leistungsfähigen Assemblers und
  79. Debuggers  kommen;  zumal  es  zwar viele Programmiersprachen als
  80. Shareware   bzw.   PD   gibt,  aber  noch  keinen  (vernünftigen)
  81. Assembler.  
  82.  
  83. DIE  FIRMA OMIKRON.SOFTWARE HAT NICHTS MIT DIESEM ASSEMBLER-PAKET
  84. ZU  TUN.  Σ-SOFT IST ALLEINIGER INHABER ALLER RECHTE AM ASSEMBLER
  85. UND DEBUGGER! 
  86.  
  87. Dieser  Text  ist  nicht  als eine Anleitung gedacht, sondern nur
  88. als  Kurzeinführung  in  den Assembler. Die vollständig Anleitung
  89. auf  ca.  240  Seiten gibt es bei den Autoren.  Zur Not kann auch
  90. das  ST-Magazin  11/89  und  12/89 herangezogen werden.  Dort hat
  91. die Referenzkarte den Assembler und Debugger zum Thema.  
  92.  
  93. Nachtrag: 
  94.  
  95. Es  fehlen ziemlich viele Features in diesem README, im Vergleich
  96. zur Anleitung, es wird mir einfach zu viel... (Markus) 
  97.  
  98.  
  99. 1.2 Features des TurboAss   
  100.  
  101.    - Einfache und durchdachte (!) Bedienung.  
  102.  
  103.    - Der  Assembler  übersetzt  durchschnittlich 1 300 000 Zeilen
  104.      pro Minute.  
  105.  
  106.    - Syntax-Check   bereits  bei  der  Eingabe.  Teilweise  sogar
  107.      Semantik-Check!   Es  werden  sowohl  Tippfehler,  wie  auch
  108.      doppelt   vergebene  Symbolnamen  bereits  bei  der  Eingabe
  109.      gemeldet.  
  110.  
  111.    - Viele  besonders  leistungsfähige  Funktionen  des  Editors,
  112.      z.B.  Suche  von Symbolen, Ersetzen von Symbolen, Einklappen
  113.      von Programmteilen (wie in GFA-Basic 3.0), u.v.a.m.  
  114.  
  115.    - Fantastische  Kombination  von  Debugger  und Assembler. Bei
  116.      einem   Absturz   eines   Programms  im  Debugger  kann  der
  117.      Assembler    automatisch    die   Absturzadresse   in   eine
  118.  
  119.  
  120.  
  121.  
  122.  
  123. 1.1                  TurboAss Kurzanleitung                     2
  124.  
  125.  
  126.      Zeilennummer umrechnen!!! 
  127.  
  128.    - Eigene   Tastatur-   und  Bildschirmtreiber  =>  selbst  bei
  129.      härtesten   Programmabstürzen  funktionieren  Assembler  und
  130.      Debugger noch.  
  131.  
  132.    - KEINE Makros!!! 
  133.  
  134.    - u.v.a.m.  
  135.  
  136.  
  137. 1.3 Was ist Shareware?   
  138.  
  139.    - Jeder   kann/darf/muß/soll  den  TurboAss  kopieren!   Dabei
  140.      müssen aber stets ALLE (!) Dateien mitkopiert werden.  
  141.  
  142.    - Wem  den  Assembler  gefällt,  sollte  uns  fairerweise 50DM
  143.      überweisen.  Das hat für alle Parteien Vorteile: 
  144.  
  145.      Für uns: 
  146.      - Wir  arbeiten  nicht  ganz umsonst (im TurboAss stecken  3
  147.        "Mannjahre" Arbeit) 
  148.  
  149.      Für den User: 
  150.      - Er bekommt eine 240 Seiten starke Anleitung 
  151.  
  152.      - Er   bekommt   die   neuste   Version   mit   persönlicher
  153.        Seriennummer 
  154.  
  155.      - Er bekommt das erste Update kostenlos 
  156.  
  157.      - Er erhält bei gefundenen Fehlern eine fehlerfreie Version 
  158.  
  159.      - Er kann sich bei Problemen an uns wenden 
  160.  
  161.      - Er  bekommt  für  jeden  User,  der bei Registierung seine
  162.        Seriennummer  angibt, 10DM (allerdings maximal 10 mal, wir
  163.        wollen  keine PD-Vertriebe finanzieren). Das Geld ist also
  164.        eine  "Entschädigung" für das Vorführen des Assemblers und
  165.        das Kopieren.  
  166.  
  167.      - Nochmal:  Läßt  sich  jemand  registrieren, so gibt er die
  168.        Seriennummer  des vorher benutzen Assemblers an. Der User,
  169.        dem  diese  Seriennummer  gehört,  bekommt  vom  uns 10DM.
  170.        Alles klar? 
  171.  
  172. Wer diese Angebot annehmen will, wende sich bitte an: 
  173.                 Markus Fritze
  174.                 Birkhahnkamp 38
  175.                 2000 Norderstedt 1
  176.                 Tel: 040/5223955
  177.                 (ab 18Uhr, auch am Wochenende (NIE VOR 12UHR!!!))
  178.  
  179.  
  180.  
  181.  
  182.  
  183. 1.1                  TurboAss Kurzanleitung                     3
  184.  
  185.  
  186.                 BLZ: 20069111, Norderstedter Bank
  187.                      Kontonummer: 407860
  188.  
  189. Ich  bitte  allerdings  teilweise  um etwas Geduld; ich hoffe die
  190. meiste   Post  am  selben  Tag  zu  erledigen,  wenn  aber  keine
  191. Anleitungen  mehr  da sind oder wenn wir gerade einige Neuerungen
  192. implementieren,  kann  es  schon  mal etwas dauern (Wenn nach 2-3
  193. Wochen  allerdings  nix passiert kann eine Anfrage klären, ob die
  194. Post auch angekommen ist).  
  195.  
  196.  
  197.  
  198. 1.4 Hardwarevorraussetzungen     
  199.  
  200. Atari  ST  mit  512k,  wobei allerdings erst ab 1Mb Assembler und
  201. Debugger   gemeinsam   im   RAM   gehalten   werden  können,  was
  202. seinerseits  wieder ein sehr wirksames Debugging erst ermöglicht.
  203. Die  hohe  Auflösung  bietet  sich wohl eher an, als die mittlere
  204. Auflösung  (Ist  einfach  augenfreundlicher);  aber  der TurboAss
  205. läuft sowohl in Farbe, wie auch in S/W.  
  206.  
  207.  
  208. 1.5 Installation     
  209.  
  210. TURBOASS.PRG,   TURBOASS.CFG,   TURBOASS.DAT,   BUGABOO.PRG   und
  211. CALL.PRG  auf  eine  Disk,  bzw.  in  einen  Ordner kopieren. Das
  212. war's.  
  213.  
  214.  
  215. 1.6 Zu den Autoren   
  216.  
  217. Sören  Hellwig  und  ich (Markus Fritze) sind zur Zeit 21 bzw. 22
  218. Jahre  alt  und  studieren  technische Informatik an der FH-Wedel
  219. bei  Hamburg.  Deswegen bitte wir auch teilweise um etwas Geduld,
  220. wenn  Anfragen nach Updates, etc. kommen; das Studium geht leider
  221. vor.    Zudem   beantworte   ich   jeden   Brief,  der  Rückporto
  222. beinhaltet.  Post  ohne  Rückporto  wird  nur  in  Ausnahmefällen
  223. beantwortet (Zur Registrierung ist KEIN Rückporto nötig!) 
  224.  
  225.  
  226. 1.7 Haftung/Rechte     
  227.  
  228. Alle  Rechte  am  TurboAss  liegen bei Σ-soft. Wobei jeder seinen
  229. Assembler  beliebig  kopieren  darf. Auch das Upload in Mailboxen
  230. ist  erlaubt.  Der  TurboAss  und das Handbuch wurden mit größter
  231. Sorgfalt   erstellt.   Leider   sind  Fehler  nie  auzuschließen,
  232. deswegen  möchten  wir  sie  darauf hinweisen, daß wir weder eine
  233. Garantie  für  die  Fehlerfreiheit  geben,  noch  die Haftung für
  234. irgendwelche  Folgen,  gleich ob durch Fehler im Handbuch, in der
  235. Software  oder  in der Hardware verursacht, übernehmen können. Es
  236. wird  wohl  jeder verstehen, daß wir keine besondere Begeisterung
  237. verspüren,  wenn  jemand  behauptet,  der Assembler habe im seine
  238.  
  239.  
  240.  
  241.  
  242.  
  243. 1.1                  TurboAss Kurzanleitung                     4
  244.  
  245.  
  246. Platte  mit  Sourcetexten  im  Werte  von mehreren Millionen Mark
  247. zerstört,  uns  auf Schadenersatz verklagen will. Also: Benutzung
  248. auf   eigene  Gefahr!  (Dieser  Abschnitt  gilt  wohl  bei  allen
  249. Softwarefirmen.  
  250.  
  251.  
  252. 2 Der Assembler    
  253.  
  254.  
  255. 2.1 Benutzeroberfläche     
  256.  
  257. Die  Benutzeroberfläche ist nicht von GEM o.ä. abhängig, d.h. neu
  258. programmiert,  das  hat  den  Vorteil, daß der Assembler sicherer
  259. gegen  Abstürze  und  auch  schneller  ist.  Zudem konnten einige
  260. nette   Features   implementiert   werden.  Trotzdem  sollte  die
  261. Umstellung  von  GEM  wohl  nicht ins Gewicht fallen. Die kleinen
  262. Buchstaben  in  den  Buttons  bewirken mit ALT zusammen gedrückt,
  263. das Anklicken des Buttons wie mit der Maus.  
  264.  
  265.  
  266. 2.2 Die Maus im Assembler  
  267.  
  268. Man  kann  mit  der  Maus eine ganze Menge Dinge machen, hier sei
  269. jedoch nur die Benutzung im Assembler erklärt: 
  270.  
  271. Im Sourcetext:
  272. Linke Maustaste:
  273. Einfachklick: Cursor setzen
  274. langer Klick: Block markieren (mit Scrollen)
  275. Doppelklick : Sprung zur Definition des angeklickten Symbols
  276.  
  277. Rechte Maustaste:
  278. Einfachklick: Sourcetext scrollen (nur am Rand klicken!)
  279. Doppelklick : Formel in den Rechner übernehmen
  280.  
  281. In der Statuszeile:
  282. einfach alles mal mit links bzw. rechts anklicken...
  283.  
  284.  
  285. 2.3 Der Editor    
  286.  
  287. Jede  eingegebene  Zeile  wird  automatisch  auf ihren Syntax und
  288. teilweise  auch  auf  die  Semantik  überprüft.  Wenn  die  Zeile
  289. fehlerfrei  ist, wird sie sofort formatiert ausgegeben. Bei einem
  290. Eingabefehler   wird   in   der   Statuszeile  die  Fehlermeldung
  291. angezeigt.  
  292.  
  293.  
  294. 2.4 Besonderheiten     
  295.  
  296. Als   Adressierungsart   wird   auch   "absolut   short"   direkt
  297. unterstützt.   Dazu   ist  hinter  der  Adresse  ".w"  anzugeben.
  298.  
  299.  
  300.  
  301.  
  302.  
  303. 1.1                  TurboAss Kurzanleitung                     5
  304.  
  305.  
  306. Line-A-Routinen  können  mit  "LINEA  #Nummer" eingegeben werden.
  307. Der   Assembler  wandelt  nicht-Motorola  Eingaben  wenn  möglich
  308. automatisch in das Motorola-Format um.  
  309.  
  310.  
  311. 2.5 Optimierungen     
  312.  
  313. Der  Assembler  kann  einige  Optimierungen selbstständig finden.
  314. Dazu gehören: 
  315. Absolut lang    -> relativ
  316. relativ         -> relativ short
  317. Absolut lang    -> PC-relativ
  318. MOVE.L #xx,A0   -> LEA xx,A0 (wenn dannach PC-relativ was bringt)
  319. MOVE.L #xx,-(SP)-> PEA xx,A0 (wenn dannach PC-relativ was bringt)
  320. Ferner  werden  einige  für  C-Compiler typische Sprünge gefunden
  321. (z.B.   2   aufeinanderfolgende   BRA,   wobei   das   2.BRA  nie
  322. angesprungen  werden  kann)  Wenn  der Assembler optimieren kann,
  323. erscheint  nach  dem  Assemblieren ein Button "ANPASSEN", welcher
  324. die  Optimierungen  im  Sourcetext  vornimmt.   Dabei  kann  auch
  325. zurück-"optimiert" werden, wenn dies nötig sein sollte.  
  326.  
  327.  
  328. 2.6 Formeln     
  329.  
  330. Alles was so Standard ist: 
  331.      + - * / ! (log.NOT) ~ (NOT bzw. EOR) 
  332.      << (SHL) >> (SHR) | (OR) & (AND) 
  333.      sowie Vergleiche 
  334.  
  335. Als Zahlenbasis sind möglich: 
  336.      Dezimal     : . oder nix 
  337.      Hexadezimal : $ 
  338.      Binär       : % 
  339.      ASCII       : " oder ' 
  340.  
  341. Als   interne   Variablen   sind  ^^DATE  (GEMDOS-Datum),  ^^TIME
  342. (GEMDOS-Zeit)  *  (akt.PC),  ^^RSCOUNT  (akt.Wert des RS-Zählers)
  343. und ^^SYMTAB (<>0, wenn Symboltabelle erzeugt wird) 
  344.  
  345. Symbole   sind   max.23   Zeichen   lang.   Alle   Zeichen   sind
  346. signifikant.   Erlaubt sind auch Umlaute und alle anderen Zeichen
  347. > 126.  
  348.  
  349.  
  350. 2.7 Tastaturkommandos     
  351.  
  352. Cursortasten,  Backspace,  etc.  wie gewohnt CTRL-Y, CTRL-B, etc.
  353. wie in TEMPUS 
  354. CTRL-D verdoppelt die Cursorzeile.  
  355. CTRL-M/ALT-M ermöglicht das Verschieben der Zeile.  
  356. CTRL-W ändert die Zahlenbasis der Zahl unter dem Cursor 
  357. CTRL-U  markiert  alle  Zeichen  mit  Warnungen,  in  welchen ein
  358.  
  359.  
  360.  
  361.  
  362.  
  363. 1.1                  TurboAss Kurzanleitung                     6
  364.  
  365.  
  366. Symbol  definiert  ist, welches nirgends benutzt wird. Damit kann
  367. man prima unbenutzt Unterprogramme finden! 
  368. ALT-Zehnerblock wie bei MS-DOS 
  369. ESC+Buchstabe Abkürzung für einen Befehl 
  370. CTRL-ESC   Tastaturmakro   beginnen.   Dann  zu  belegende  Taste
  371. drücken.   Alle   folgenden   Tasten  (nicht  die  Maus!)  werden
  372. aufgezeichnet.  Mit  ALT-ESC  wird  die Definition abgeschlossen.
  373. Die  belegte  Taste  kann  mit  CTRL-ESC,  Taste,  ALT-ESC wieder
  374. freigegeben werden.  
  375.  
  376.  
  377. 2.8 Ein paar Worte zu den 
  378.  
  379. Mit  "Laden..."  kann  auch  ein ASCII-Text eingeladen werden. Er
  380. wird  dabei  automatisch  ins  interne Format gewandelt.  "Symbol
  381. suchen..."  und  "Symbol  ersetzen..."  ermöglichen  das schnelle
  382. Finden  bzw.  schnelle  Ersetzen  von Symbolen. Dabei können z.B.
  383. alle  Symbole gefunden werden, die mit "M" anfangen (Maske:"M*"),
  384. ohne  daß jeder MOVE-Befehl gefunden wird (wie bei ASCII-Editoren
  385. üblich).   "Sprung  zu  Zeile.."  ermöglich  auch das Springen zu
  386. Symboldefinitionen   (Eingabe:z.B."M*").    Die   Dialogboxen  im
  387. "Einstellungen"  Menü sind zum Teil selbsterklärend, der Rest ist
  388. entweder  unwichtig  oder zu kompliziert, als daß er hier erklärt
  389. werden könnte.  
  390.  
  391.  
  392. 2.9 Der Assembler    
  393.  
  394. Wird  mit F1 aufgerufen. Treten bei der Assemblierung Fehler auf,
  395. werden  alle fehlerhaften Zeilen markiert. Nach der Assemblierung
  396. kann  man  dann mit CTRL-J bzw. Shift-CTRL-J von Fehler zu Fehler
  397. springen.    Der    Assembler    speichert    die   Fehler,   die
  398. Cursorposition, die Marker etc.  übrigens mit dem Sourcetext ab! 
  399.  
  400. In  der  Dialogbox nach (!) der Assemblierung, können noch einige
  401. Extras eingestellt werden: 
  402.  
  403.    - Soll  eine  Symboltabelle  an  das  Programm  gehängt werden
  404.      (bzw. an den Debugger übergeben werden)? 
  405.  
  406.    - Ferner  kann das erzeugte Programm in verschiedenen Formaten
  407.      abgespeichern. Möglich sind: 
  408.  
  409.    DEBUGGER  :  Sprung in den Debugger mit Programmübergabe (KEIN
  410.    SPEICHERN) 
  411.    STANDARD : Programm abspeichern (halt ganz normal...) 
  412.    DATAS    : Data-Zeilen erzeugen (für OMIKRON.Basic) 
  413.    ABSOLUT   :  Programm  für  eine  best.  Adresse  (z.B. EPROM)
  414.    erzeugen 
  415.    BASIC     :  spezielles  Format für Basic, welches sich selbst
  416.    reloziert 
  417.    OMINLINE : INLINE-Zeile für OMIKRON-Basic erzeugen 
  418.  
  419.  
  420.  
  421.  
  422.  
  423. 1.1                  TurboAss Kurzanleitung                     7
  424.  
  425.  
  426.    PARALLEL : spez.Übertragungsformat zum Amiga 
  427.    SMALLDRI : DRI-Format erzeugen (allerdings OHNE Importe) 
  428.    GFAINLINE : GFA-Inline-Format erzeugen.  
  429.    FSTANDARD   :   Fast-Load-Bit  im  Header  setzen  (ST-Magazin
  430.    11/89), sonst wie 
  431.  
  432.         STANDARD 
  433.  
  434.  
  435.  
  436. 2.10 Pseudo-Opcodes des Assemblers   
  437.  
  438. DC,  DS,  BLK,  DCB,  EVEN,  ALIGN, TEXT, DATA, BSS, END, =, EQU,
  439. GLOBAL, CNOP, ORG, ILLEGAL und REG 
  440. wie üblich.  
  441.  
  442. DXSET Länge[,Füllwert] Tabelle definieren 
  443. DX 'String' Tabelleneintrag auf Länge mit Füllwert aufgefüllt 
  444. RS, RSRESET, RSSET, RSEVEN, RSBSS Relatives Segment 
  445. OPT D+ normale Symboltabelle an 
  446. OPT X+ erweiterte Symboltabelle an 
  447. OPT W+ Warnungen an 
  448. OPT P+ PC-relatives Programm muß erzeugt werden 
  449. OPT O+ Optimierungen an 
  450. Mit '-' kann etwas ausgeschaltet werden 
  451. OUTPUT 'Filename' Default-Filename 
  452. PATH 'Pfad' Pfad für IBYTES setzen 
  453. IBYTES  'DEGAS.PI3',32000,34  Lädt ein Daten-File der Länge 32000
  454. ab Byte 34 der Datei ein (Hier: ein Degas-Bild) 
  455. BASE is' viel zu kompliziert...  
  456. REPT  Anzahl,  ENDR  wiederholt  Anzahl  mal  den  Sourcetextteil
  457. zwischen 
  458. REPT und ENDR 
  459. IF, ELSE, ENDC bedingte Assemblierung 
  460. FAIL Assemblierung abbrechen 
  461.  
  462.  
  463. 3 Der Debugger    
  464.  
  465.  
  466. 3.1 Vorwort     
  467.  
  468. Es  ist  eigentlich  unmöglich  den Debugger KURZ zu beschreiben,
  469. deswegen  hier  nur  die  wichtigsten  Befehle (mit HELP kann man
  470. alle mal sehen bzw.  in der Anleitung) 
  471.  
  472.  
  473. 3.2 Allgemeines     
  474.  
  475. Der  Debugger  benutzt selber keine I/O-Routinen des TOS, d.h. er
  476. ist  ziemlich  unanfällig  gegen  Abstürze.  Bei Lade-Operationen
  477. u.ä.    wird    aber    dann    natürlich   doch   auf's   GEMDOS
  478.  
  479.  
  480.  
  481.  
  482.  
  483. 1.1                  TurboAss Kurzanleitung                     8
  484.  
  485.  
  486. zurückgegriffen.  
  487.  
  488. Er  verwaltet  eine  eigene  Bildschirmseite,  sodaß Programm und
  489. Debugger sich nicht auf einer gemeinsamen Seite tummeln.  
  490.  
  491. Das Debugging kann sowohl mit Tastatur und Maus erfolgen.  
  492.  
  493. Der  Debugger  kann  resident im RAM gehalten werden, indem er in
  494. den  AUTO-Ordner  kopiert  wird  oder  mit  dem  Befehl  RESIDENT
  495. gehalten  wird.   Der  Debugger kann dann mit CALL.PRG aufgerufen
  496. werden.  Auch  der  Assembler kann auf den Debugger zugreifen (Er
  497. kann ihn aber auch nachladen).  
  498.  
  499.  
  500. 3.3 Die Bedienung    
  501.  
  502. Die  2  oberen  Zeilen  entsprechen  den Funktionstasten (mit und
  503. ohne  Shift).  Die  3 Folgezeilen stellen die Registerinhalte und
  504. Flags  dar.   Alle  Teilen in diesen 5 Zeilen können mit der Maus
  505. ausgelöst werden.  
  506.  
  507. Die  restlichen  (max.20  Zeilen)  sind  frei  veränderbar.  Hier
  508. erfolgen die Eingaben, die Ausgaben. Hier tobt das Leben...  
  509.  
  510. Die  Tastaturbelegung  (Cursortasten,  CTRL-M,  CTRL-1, etc.) ist
  511. ähnlich der des Assemblers.  
  512.  
  513. Eingaben   erfolgen   stets   ab  Zeilenanfang  bzw.  hinter  der
  514. Hexzahl.  Leerzeichen werden ignoriert bzw. dienen als Trenner.  
  515.  
  516. Wenn   der  Assembler  den  Debugger  aufgerufen  hat,  kann  man
  517. CTRL-HELP  zurückspringen.  Dabei  wird  der aktuelle PC-Stand in
  518. eine  Zeilennummer  UMGERECHNET.  D.h.  wenn  ein  Programm  beim
  519. Debuggen  abgestürzt  ist  und der PC im Programm steht, kann man
  520. CTRL-HELP zur entsprechenden Stelle im Sourcetext springen.  
  521.  
  522. Mit  SHIFT-SHIFT  kann  ein laufendes Programm angehalten werden.
  523. Der  Ring-Indikator  funktioniert  allerdings  auch. Der Debugger
  524. ist zudem RESETFEST. Als Notbremse ab und zu sinnvoll.  
  525.  
  526.  
  527.    F1  - Führt den nächsten Befehl aus 
  528.  
  529.    SF1 -  Bricht  beim  nächsten  Sprungbefehl  ab. Simuliert den
  530.      Tracemode des 68020 Prozessors.  
  531.  
  532.    F2  -  Setzt  hinter  den nächsten Befehl einen Breakpoint und
  533.      startet   das   Programm.   Damit   kann  z.B.  schnell  ein
  534.      Unterprogramm   ausgeführt  werden  oder  ein  DBRA  beendet
  535.      werden.  
  536.  
  537.    SF2 - nicht weiter wichtig 
  538.  
  539.  
  540.  
  541.  
  542.  
  543. 1.1                  TurboAss Kurzanleitung                     9
  544.  
  545.  
  546.    F3  -  Startet  das  Programm und bricht beim nächsten RTS ab.
  547.      ACHTUNG!  Wenn mit MOVEM Werte auf dem Stack gerettet werden
  548.      => Bomb! 
  549.  
  550.    SF3 - wie F3 nur bis zum nächsten RTE 
  551.  
  552.    F4  -  Führt  den  nächsten TRAP NICHT aus, sondern springt in
  553.      ihn hinein.  
  554.  
  555.    SF4 - Programm ohne Endebedingung starten 
  556.  
  557.    F5  - nächsten Befehl ignorieren, d.h. überspringen 
  558.  
  559.    SF5 - Insert/Overwrite toggeln 
  560.  
  561.    F6  - Sourcecode anzeigen (nur wenn vom Assembler übergeben) 
  562.  
  563.    SF6 - die umgerechneten Marker des Assemblers anzeigen.  
  564.  
  565.    F7  - Memorydump ab dem PC 
  566.  
  567.    SF7 - Breakpoints anzeigen 
  568.  
  569.    F8  - Disassemble mit Dump ab PC 
  570.  
  571.    SF8 - Info über die Speicherbelegung 
  572.  
  573.    F9  - List ab PC (mit Symbolen, wenn vorhanden) 
  574.  
  575.    SF9 - Screen löschen, Warmstart 
  576.  
  577.    F10 - Umschalten der Bildschirmseite (Toggeln) 
  578.  
  579.    SF10- Quit mit Sicherheitsabfrage 
  580.  
  581.  
  582. 3.4 Die Befehle    
  583.  
  584. Alle  Befehle  können  auf ein Minimum abgekürzt werden. An ALLEN
  585. Stellen  sind  als  Parameter  beliebige  Ausdrücke erlaubt (d.h.
  586. Formeln etc.) 
  587.  
  588. ?Term   Rechnet den Term aus 
  589. Term  darf  (bis  auf Vergleiche) alle Operationen des Assemblers
  590. enthalten.  Zudem  ist  mit  {400}.l  eine indirekte Adressierung
  591. möglich.   ".l"  gibt  dabei  die Zugriffsbreite an.  Alle Zahlen
  592. werden  als  HEXZAHLEN  angesehen.  Dezimalzahlen  sind  mit  "."
  593. einzuleiten.  Bei  einer Symboltabelle kann man mit ".Symbolname"
  594. auf dieses zugreifen.  
  595.  
  596. Definierte Variablen (ein Teil davon) 
  597. ^D0-^D7 Die Register D0-D7 
  598.  
  599.  
  600.  
  601.  
  602.  
  603. 1.1                  TurboAss Kurzanleitung                    10
  604.  
  605.  
  606. ^A0-^A7 Die Register A0-A7 
  607. PC, USP, SSP, SR, CCR, SP Die gleichnamigen Register 
  608. ^M0-^M9 Die umgerechneten Marker des Assemblers 
  609.  
  610.  
  611. Alle obigen Variablen sind mit 
  612. LET Variable=Term änderbar.  
  613. LET läßt sich mit "~" abkürzen.  
  614.  
  615. Noch ein paar Read-Only-Variablen: 
  616. TEXT,  DATA,  BSS,  START,  END,  BASEPAGE,  BP,  ACTPD, MEMBASE,
  617. SAVEAREA 
  618.  
  619. Es gibt noch etwa 20-30 weitere nicht so wichtige Variablen.  
  620.  
  621. BREAKPOINT [Nummer=Adresse[,[*|=Wert|Anzahl|?Bedingung]|K]] 
  622. Breakpoints anzeigen, löschen, ändern, setzen 
  623.  
  624.  
  625.    B5=PC+.100 Breakpoint  5  (0-15  ist  mgl)  auf Adresse PC+100
  626.      setzen 
  627.  
  628.    B K        Alle Breakpoints löschen 
  629.  
  630.    B          Alle Breakpoints anzeigen 
  631.  
  632.    BK3        Breakpoint 3 löschen 
  633.  
  634.  
  635.    B0=Adr,Anzahl   :  Breakpoint  bricht  beim  Anzahl. Erreichen
  636.      ab.  
  637.  
  638.    B0=Adr,*        :  Breakpoint  bleibt  auch nach dem Erreichen
  639.      erhalten.     Normale    Breakpoints    werden   automatisch
  640.      gelöscht.  
  641.  
  642.    B0=Adr,=Wert    :  Zähler  auf die Adresse Adr setzen. In ^BC0
  643.      wird hochgezählt wie oft die Adresse erreicht wurde.  
  644.  
  645.    B0=Adr,?Term    :  Bedingter  BKPT, Abbruch, wenn Term<>0 z.B.
  646.      B0=Adr,?^D0=4711 => Abbrucht, wenn PC=Adr UND D0= 
  647.  
  648. GO [Adr] 
  649. Programm an Adresse Adr, bzw. PC starten 
  650.  
  651. TRACE 
  652. Wie F1 
  653.  
  654. SHOWMEMORY Term 
  655. 16 Bytes ab Term stets anzeigen 
  656.  
  657. UNTRACE [Adr] 
  658.  
  659.  
  660.  
  661.  
  662.  
  663. 1.1                  TurboAss Kurzanleitung                    11
  664.  
  665.  
  666. solange Tracen, bis Bedingung erfüllt 
  667.  
  668. IF Term 
  669. Bedingung für UNTRACE 
  670.  
  671. OBSERVE Trapno,Funkno 
  672. Abbruch,  wenn  Trapno(Funktion)  ausgeführt  wird.  z.B. OBSERVE
  673. 14,8 => Abbruch bei XBIOS(8) = Floprd() 
  674.  
  675. CLS 
  676. 2.Bildschirmseite löschen 
  677.  
  678. MOUSEON / MOUSEOFF 
  679. VDI-Maus an/aus 
  680.  
  681. |Befehl 
  682. Befehl ausführen (zum Testen echt prima) 
  683.  
  684. LEXECUTE "Filename"[,"Commandline"] 
  685. Programm ausführbar laden (=> Pexec()) Dann mit GO zu starten.  
  686.  
  687. LOAD "Filename"[,Adresse] 
  688. File nicht ausführbar laden 
  689.  
  690. SAVE ["Filename"[,Adresse[,Endadresse]]] 
  691. File abspeichern 
  692.  
  693. DIR Pfadmaske 
  694. Directory anzeigen 
  695.  
  696. Pbefehl 
  697. P vor einem Befehl leitet diesen zum Drucker um 
  698.  
  699. FOPEN Filename, Fbefehl, FCLOSE 
  700. Ausgabe eines Befehls in eine Datei 
  701.  
  702. ERASE, KILL Filename 
  703. Datei löschen (mit Jokern!) 
  704.  
  705. FREE 
  706. Freier Hauptspeicher 
  707.  
  708. FREE Drive 
  709. Freier Platz auf einem Laufwerk 
  710.  
  711. MKDIRECTORY Name 
  712. Ordner erstellen 
  713.  
  714. RMDIRECTORY Name 
  715. Ordner löschen (wenn leer) 
  716.  
  717. NAME oldname,newname 
  718.  
  719.  
  720.  
  721.  
  722.  
  723. 1.1                  TurboAss Kurzanleitung                    12
  724.  
  725.  
  726. File umnennen 
  727.  
  728. FATTRIBUT Filename,attribut 
  729. File-Attribut ändern/setzen 
  730.  
  731. FORMAT DS/SS,Laufwerk 
  732. Disk formatieren 
  733.  
  734. TYPE Filename 
  735. ASCII-Datei anzeigen (SPACE hält Ausgabe an) 
  736.  
  737. READSEKTOR Track,Sektor,Seite,Adresse,Laufwerk (0 oder 1) 
  738. Sektor mit XBIOS(8) einlesen 
  739.  
  740. WRITESEKTOR s.o.  
  741. Sektor mit XBIOS(9) schreiben 
  742.  
  743. Alle  in  diesem  Abschnitt  angegebenden  Befehle  erlauben  den
  744. gleichen  Syntaxbei den Parametern, der deswegen an dieser Stelle
  745. erklärt   wird,   und  im  folgenden  nur  noch  mit  [Parameter]
  746. bezeichnet wird. Es gilt also: 
  747.  
  748. [Parameter] = [Von][[,]#[Zeilen]|,Bis|[,][Bytes[]]] 
  749.  
  750. Es  sind  also  alle  Parameter  wahlfrei, d.h. man braucht keine
  751. Parameterangeben.  Der  Debugger  nimmt  dann vorgegebene interne
  752. Werte.  
  753.  
  754. Wenn  der  Ausdruck  "Von"  fehlt,  wird ab der aktuellen Adresse
  755. z.B.  disassembliert.  Die  aktuelle  Adresse  ist  die  Zahl  am
  756. Zeilenanfang,   bzw.  wenn  diese  fehlt,  die  zuletzt  benutzte
  757. Adresse.  
  758.  
  759. Als   Endadresse  gilt  der  Ausdruck  "Bis",  der  jedoch  nicht
  760. angegeben  werden  muß.  Wird  statt "Bis" ein "#" angegeben wird
  761. genau  eine  Zeile  ausgegeben.  Ein dem "#" folgender Term, gilt
  762. als  Zeilenanzahl. Es können somit z.B. genau 8 Zeilen ausgegeben
  763. werden.  Es werden jedoch maximal 99 Zeilen ausgegeben. Fehlt die
  764. Endangabe  gänzlich, werden (normalerweise) 16 Zeilen ausgegeben.
  765. Die  Anzahl  läßt  sich jedoch einstellen, indem man die Variable
  766. "Lines"  entsprechend  ändert.  Die  letzte  Möglichkeit  ist die
  767. Angabe  der Byteanzahl in eckigen Klammern. Sie kann genauso, wie
  768. die  Zeilenanzahl  angegeben  werden.  Die "]" ist optional, d.h.
  769. man kann sie auch weglassen.  
  770.  
  771. Beispiel: 
  772. "d text #5" 
  773. Disassembliert 5 Zeilen ab Anfang des geladenen Programms.  
  774.  
  775. Beispiel: 
  776. "m data[30]" 
  777. Ein Memorydump des DATA-Segments (48 Bytes lang).  
  778.  
  779.  
  780.  
  781.  
  782.  
  783. 1.1                  TurboAss Kurzanleitung                    13
  784.  
  785.  
  786.  
  787. DISASSEMBLE [Parameter] 
  788. Disassemble mit Dump, der Dump kann geändert werden! 
  789.  
  790. LIST [Paramter] 
  791. Disassemble  ohne  Dump  mit  Symbolen,  Opcodes  können geändert
  792. werden (RETURN nicht vergessen) 
  793.  
  794. SYMBOLTABLE [Parameter] 
  795. evtl. vorhandene Symboltabelle anzeigen 
  796.  
  797. MEMORY[.B|.W|.L][Parameter] 
  798. Memorydump mit Ausgabebreite (Änderbar) 
  799.  
  800. ASCII [Parameter] 
  801. ASCII-Dump (Änderbar) 
  802.  
  803. FIND [Von,Bis],Terme{,Term} 
  804. geladenes   Programm   oder   Speicherbereich   nach  den  Termen
  805. durchsuchen 
  806.  
  807. HUNT  s.o.  
  808. wie Find, jedoch nur auf geraden Adressen 
  809.  
  810. ASCFIND [Von,Bis],String 
  811. ASCII-Suche  im  Disassemblerlisting  (mit Jokern). Langsam, aber
  812. ab und zu praktisch 
  813.  
  814. CONTINUE 
  815. Hunt, Find oder ASCFIND fortsetzen, wenn mit ESC abgebrochen 
  816.  
  817. INFO 
  818. mal ausprobieren 
  819.  
  820. SYSINFO 
  821. auch mal ausprobieren 
  822.  
  823. MOVE, COPY Von,Bis,Nach 
  824. Speicherblock kopieren 
  825.  
  826. FILL Von,Bis,Term{,Term} 
  827. Speicherblock füllen 
  828.  
  829. CLR [Von,Bis] 
  830. Speicherblock löschen (oder alles) 
  831.  
  832. COMPARE Von,Bis,Adr 
  833. Bereich Von,Bis mit Bereich ab Adr vergleichen 
  834.  
  835. EXIT, QUIT, SYSTEM 
  836. Debugger verlassen 
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843. 1.1                  TurboAss Kurzanleitung                    14
  844.  
  845.  
  846. RESIDENT 
  847. Debugger resident halten 
  848.  
  849. SET, LET, ~ 
  850. siehe oben 
  851.  
  852. RESET ALL 
  853. Debugger-Kaltstart 
  854.  
  855. HELP 
  856. Gibt  alle  Befehle  unsortiert aus (wie man sieht, ein paar mehr
  857. als hier beschrieben) 
  858.  
  859.  
  860. 4 Was bringt die Zukunft?  
  861.  
  862. Nun,  daß  hängt  sehr  vom  Erfolg  der  Shareware-Konzeptes ab.
  863. Sicher,  wir  machen weiter, aber ob wir einen 68020/30 Assembler
  864. mit   FPU-  und  PMMU-Support  (Atari  TT)  mit  Makros,  lokalen
  865. Symbolen  etc. als Shareware rausbringen? Nun, wenn es sich lohnt
  866. immer... Allerdings geht das Studium vor...  
  867.  
  868. Was kommt denn als nächstes? 
  869.  
  870. Der  Sourcecode-Debugger  ist  schon  ganz  nett  (wenn  auch bei
  871. Sourcetexten   mit   >10000   Zeilen  recht  langsam  =>  Arbeit,
  872. Arbeit,...  ),  kann man doch jederzeit gucken, an welcher Stelle
  873. der   PC   im   Sourcetext   steht,   ohne   in   den   Assembler
  874. zurückzumüssen.  Die Remarks zu sehen ist ja auch nicht schlecht.
  875. Und  das  tollste: das Ganze spart auch noch Platz! Beim normalen
  876. Debuggen     wird     eine     Symboltabelle    benötigt,    beim
  877. Sourcecode-Debugging  wird dagegen laufend umgerechnet, wo der PC
  878. im  Sourcetext  steht (und das recht fix (bei Sourcetexten <10000
  879. Zeilen, s.o.)).  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.                        Inhaltsverzeichnis
  907.  
  908.                          TurboAss V1.62
  909.  
  910. 1 Allgemeines    ..........................................    1
  911.    1.1 Einleitung    ......................................    1
  912.    1.2 Features des Turbo-Ass  ............................    1
  913.    1.3 Was ist Shareware?  ................................    2
  914.    1.4 Hardwarevorraussetzungen    ........................    3
  915.    1.5 Installation    ....................................    3
  916.    1.6 Zu den Autoren  ....................................    3
  917.    1.7 Haftung/Rechte    ..................................    3
  918.  
  919. 2 Der Assembler   .........................................    4
  920.    2.1 Benutzeroberfläche    ..............................    4
  921.    2.2 Die Maus im Assembler ..............................    4
  922.    2.3 Der Editor   .......................................    4
  923.    2.4 Besonderheiten    ..................................    4
  924.    2.5 Optimierungen    ...................................    5
  925.    2.6 Formeln    .........................................    5
  926.    2.7 Tastaturkommandos    ...............................    5
  927.    2.8 Ein paar Worte zu den...............................    6
  928.    2.9 Der Assembler   ....................................    6
  929.    2.10 Pseudo-Opcodes des Assemblers  ....................    7
  930.  
  931. 3 Der Debugger   ..........................................    7
  932.    3.1 Vorwort    .........................................    7
  933.    3.2 Allgemeines    .....................................    7
  934.    3.3 Die Bedienung   ....................................    8
  935.    3.4 Die Befehle   ......................................    9
  936.  
  937. 4 Was bringt die Zukunft? .................................   14
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.                               - I -
  961.  
  962.